Historically, engineers and scientists have utilized text-based or graphical programs/models in numerous scientific areas such as Feedback Control Theory and Signal Processing to study, design, debug, and refine dynamic systems. Dynamic systems, which are characterized by the fact that their behaviors change over time, are representative of many real-world systems. Text-based or graphical programming/modeling has become particularly attractive over the last few years with the advent of software packages, such as MATLAB®, and Simulink®, both from The MathWorks, Inc. of Natick, Mass. Such packages provide sophisticated software platforms with a rich suite of support tools that makes the analysis and design of dynamic systems efficient, methodical, and cost-effective.
Using the models or algorithms, an engineer or scientist can analyze the behavior of a circuit before the circuit is built. When the engineer or scientist determines the behavior of the circuit, then the models or algorithms are represented in Hardware Description Language (HDL) code to implement the circuit. HDL refers to any language from a class of computer languages for formal description of hardware. It can describe hardware operation, its design, and tests to verify its operation by means of simulation. HDL code is a standard text-based expression of the temporal behaviour and/or (spatial) structure of the hardware. HDL's syntax and semantics include explicit notations for expressing time and concurrency which are the primary attributes of hardware.
Using the hardware description in HDL code, a software program called an hardware synthesis tool can infer hardware logic operations from the hardware description statements and produce an equivalent netlist of generic hardware primitives to implement the specified behaviour. However, designing hardware systems in HDL code is generally difficult and as a result time consuming. Therefore, there is a need for a process for automatically generating HDL code for hardware systems.